Various networked gaming systems have been developed over the years beginning at least in the 1980's. With acceptance and utilization, users such as casino operators have found it desirable to increase the computer management of their facilities and expand features available on networked gaming systems. For instance, there are various areas in the management of casinos that is very labor intensive, such as reconfiguring gaming machines, changing games on the gaming machines, and performing cash transactions for customers. In such networked gaming systems, effective methods of transferring data are becoming increasing important.
The most common method by which files are transferred over networks is the client-server model. In this configuration, a central server sends the entire file to each client that requests it. Both HTTP (hyper text transfer protocol) and FTP (file transfer protocol) function in this manner. In the client-server model, the clients only speak to the server and do not speak to each other. A main advantage of client-server model is its simplicity to configure. Additionally, the files are typically always available since the servers usually are dedicated to the task of serving. As such, the servers are always on and connected to a network.
However, the client-server model encounters significant problems with data files that are large or very popular, or both. Otherwise stated, it requires a large amount of bandwidth and server resources to distribute such a data file, since the server must transmit the entire file to each client. Techniques such as mirroring and load balancing have been utilized in an attempt to address these shortcomings by distributing the load across multiple servers. Nevertheless, these techniques typically require a lot of coordination and effort to set up and are not always feasible.
Another method of transferring files is through peer-to-peer networks. Notable peer-to-peer networks include, by way of example only: Kazaa, Gnutella, Direct Connect, and the like. Typically, in such a peer-to-peer networks, ordinary users trade files by directly connecting one-to-one to other user's computers. An advantage of peer-to-peer networks is that files can be shared without having access to a proper server. Accordingly, there is little accountability for the contents of the files. Typically, a downloading user receives a file from a single source (e.g., another user in the peer-to-peer network).
In a peer-to-peer network, the bandwidth problem discussed above is somewhat mitigated since there is a greater chance that a popular data file will be offered by a larger number of peers. The breadth of files available tends to be fairly good in a peer-to-peer network, although the download speeds for more obscure data files tend to be lower. Another common problem sometimes associated with peer-to-peer network is the significant protocol overhead for passing search queries amongst the peers. As a result, the number of peers that one can reach is often limited. Additionally, partially downloaded files are usually not available to other peers. The availability of data files is generally dependent on the goodwill of the users, since rules and/or restrictions regarding send/receive ratios are difficult to enforce.
Another protocol that is designed for transferring files is BitTorrent. BitTorrent is a variation of a peer-to-peer network in which users connect to each other directly to send and receive portions of a file. However, unlike a true peer-to-peer network, BitTorrent does utilize a central server, which is referred to as a tracker, that coordinates the action of all peers in the network. The tracker only manages connections. The tracker does not have any knowledge of the contents of the files being distributed. Accordingly, a large number of users can be supported with relatively limited tracker bandwidth. A core functionality of the BitTorrent protocol is that users are able to upload (transmit outbound) at the same time they are downloading (receiving inbound). In this manner, network bandwidth is utilized with great efficiently. Interestingly, BitTorrent functions at an increasingly higher level of productivity as the number of people interested in a certain file increases, in contrast to other file transfer protocols.
In one exemplary situation, a group of five editors are sitting around a table who are each trying to get a complete copy of a document. The first editor announces that he has a first subset of the total pages. The third, forth, and fifth editors are each missing some of the pages in the first subset of the total pages. These editors coordinate such that the first editor gives the third, forth, and fifth editors the pages that they are missing. The second editor then announces that he has a second subset of the total pages. Some of the remaining editors are missing pages from the second subset of the total pages. These editors coordinate such that the second editor gives the other editors the pages that they are missing. The process continues around the table until everyone has announced what pages they have and what pages they are missing. The editors at the table coordinate to swap pages of the document until all the editors have all the pages of the document.
Continuing with this exemplary situation, there is also another person at the table who happens to be the author of the document. This author has a complete copy of the document, and thus, does not need any pages from the editors to be sent to him. The author responds to the editors with pages that none of the editors have at the table. In the beginning, all of the editors must talk to the author to get their first subset of total pages. To increase efficiency, the editors should each request and receive different pages from the author. Very quickly, all of the editors have most of the pages amongst themselves, even if no editor has the whole document. In this manner, the author can distribute the document to many editors, without having to give a full copy of the document to every editor. In contrast, the author distributes different pages of the document to different editors who are then able to share the document amongst themselves.
A connection link is choked when the BitTorrent client does not currently want to send anything on that connection link. A BitTorrent client signals that it is choked to other clients for a number of reasons, but the most common is that, by default, a client will only maintain a maximum number of active simultaneous uploads to requesting clients. The remaining requesting clients will receive the choked signal. The term interested refers to the state of a downloader with respect to a connection. A downloader is marked as interested if the other end of the link has any pieces that the client wants. Otherwise, the connection is marked as not interested. If a client has not received a data file after a certain period (e.g., default: 60 seconds), the client marks the connection as snubbed, meaning that the peer on the other end has chosen not to send in a while. The function of tracking this variable is to improve download speeds. Optimistic unchoking occurs when a client periodically shuffles its list of uploaders and tries sending on different connections that were previously choked, and choking the connections it was just using.